/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Logica;

import java.util.ArrayList;
import java.util.Date;

/**
 *
 * @author Javier Arzarello
 */
public class Jornada {

    private Date fecha;
    private ArrayList<Carrera> carreras;
    private Carrera carreraActual;

    public Date getFecha() {
        return fecha;
    }

    public void setFecha(Date fecha) {
        this.fecha = fecha;
    }

    public ArrayList<Carrera> getCarreras() {
        return carreras;
    }

    public void setCarreras(ArrayList<Carrera> carreras) {
        this.carreras = carreras;
    }

    //CONSTRUCTOR
    public Jornada(Date fecha) {
        this.fecha = fecha;
        this.carreras = new ArrayList();
    }

    //METODOS
    public boolean agregarCarrera(Carrera c) {

        boolean r = false;
        if (!carreras.contains(c)) {
            carreras.add(c);
            r = true;
        }

        return r;
    }

    //PARA ASIGNAR NUMERO DE CARRERA
    public int numeroCarrera() {
        return this.carreras.size();
    }

    public Carrera buscarCarrera(int numero) {
        for (Carrera c : carreras) {
            if (c.getNumero() == numero) {
                return c;
            }
        }
        return null;
    }

    public boolean buscarCarrera(String nombre) {
        for (Carrera c : carreras) {
            if (c.getNombre().equals(nombre)) {
                return true;
            }
        }
        return false;
    }

    public Carrera buscarPrimera() {
        for (Carrera c : carreras) {
            if (c.getEstado() == 0) {
                return c;
            }
        }
        return null;
    }

    public boolean buscarCaballoCarrera(Caballo caballo) {
        for (Carrera c : carreras) {
            if (c.buscarParticpante(caballo)) {
                return true;
            }
        }
        return false;
    }

    public Carrera buscarPrimeraCarrera() {
        boolean primera = false;
        for (Carrera c : carreras) {
            do {
                if (c.getEstado() == 0) {
                    primera = true;
                    return c;
                }

            } while (!primera);
        }
        return null;
    }

    public Carrera buscarAbierta() {
        for (Carrera c : carreras) {
            if (c.getEstado() == 1) {
                return c;
            }
        }
        return null;
    }

    public Carrera buscarCerrada() {
        for (Carrera c : carreras) {
            if (c.getEstado() == 2) {
                return c;
            }
        }
        return null;
    }

    public void eliminarCarrera(Carrera c) {
        carreras.remove(c);
    }

    //esta función trae la carrera actual aunque esté cerrada. 
    public Carrera buscarCarreraActual() {
        for (Carrera c : carreras) {
            if (c.isActual()) {
                return c;
            }
        }
        return null;
    }
}
